public class MyCircularDeque {
    //模拟循环队列的实现；
    public int[] elem;
    public int front;//队头；
    public int rear;//队尾；
    public MyCircularDeque(int k){
        elem=new int[k];
    }
    //1，向循环队列中进行添加元素；
    public boolean add(int val){
        if(isFull()){
            return false;
        }
        elem[rear]=val;
        rear=(rear+1)%elem.length;
        return true;
    }
    //2，进行判断一个循环队列是否已经满了；
    public boolean isFull(){
        if((rear+1)%elem.length==front){
            return true;
        }
        return false;
    }
    //3.进行判断一个循环是否为空；
    public boolean isEmpty(){
        if(front==rear){
            return true;
        }
        return false;
    }
    //4,进行出队操作；
    public boolean put(){
        if(isEmpty()){
            return false;
        }
        front=(front+1)%elem.length;
        return true;
    }
    //5.进行获取循环队列的队头元素；
    public int frontt(){
        if(isEmpty()){
            return -1;
        }
        return elem[front];
    }
    //6.进行获取队列的队尾元素；
    public int rearr(){
        if(isEmpty()){
            return -1;
        }
        int index=(rear==0)?elem.length-1:rear-1;
        return elem[index];
    }
}

